<template>
  <div class="import">
    <upload-excel :beforeUpload="beforeUpload" :onSuccess="onSuccess" />
  </div>
</template>

<script>
import { batchEmp } from "@/api/employees";
export default {
  name: "import",
  methods: {
    async onSuccess({ header, results }) {
      if (this.$route.query.type == "emp") {
        // 因为excel里的标题是中文的，然后读取出来的结果就也会是中文的
        // 所以我们要对它进行转换，把中文转成对应的英文
        const userRelations = {
          入职日期: "timeOfEntry",
          手机号: "mobile",
          姓名: "username",
          转正日期: "correctionTime",
          工号: "workNumber",
        };

        // 遍历读取到的内容
        let list = results.map((item) => {
          let newObj = {};
          // 还要遍历这个对象，把每个键替换成英文
          for (let key in item) {
            // key就是中文键，再根据上面的对象转换成英文键
            let engKey = userRelations[key];
            // 先判断当前的key是不是时间
            if (key == "入职日期" || key == "转正日期") {
              let excelTime = item[key];
              // 转成JS时间
              let date = new Date((excelTime - 1) * 24 * 60 * 60 * 1000);
              let year = date.getFullYear();
              date.setFullYear(year - 70);
              newObj[engKey] = date;
            } else {
              // 把原来对象里的值赋值给新对象，并且是存到新的英文键对应的属性上
              newObj[engKey] = item[key];
            }
          }

          return newObj;
        });

        // 把读取到的excel内容通过调用接口传递给服务器
        await batchEmp(list);
        this.$message.success("导入成功！");
        this.$router.back();
      }
    },
    beforeUpload(file) {
      if (file.size > 1024 * 2 * 1024) {
        this.$message.error("文件不能超过2M");
        return false;
      }

      return true;
    },
  },
};
</script>

<style>
</style>